注册

STM32学习笔记1之通用GPIO
首页 > 嵌入式开发 > STM32    作者:RainFly   2017年6月19日 14:29 星期一   热度:6949°   字号:   评论:5    
时间:2017-6-19 14:29   热度:6949°  评论:5 条 

开篇:

        已经很久未更新相关内容,由于工作原因,开始学习STM32,会将学习和工作遇到的任何问题和进展,都写下来,如果需要的伙伴可以加上书签在下面留言给我,共同探讨进步。

学习平台:    芯片:STM32F10x     库函数版本:V3.5.0         开发板:百为

由于需要马上上手,继而对于底层寄存器操作认识先行搁置,只要是已开发为主,所以采用官方提供的API接口 通过这些接口来实现对STM3210X的软件编写,

官方提供的固件库 :http://pan.baidu.com/s/1bp6bgcf


GPIO的函数和变量
 GPIO_InitTypeDef  GPIO_InitStructure;  
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;  //LED0-->PB.5 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
typedef struct
{
  uint16_t GPIO_Pin;             /*!< Specifies the GPIO pins to be configured. //0-15对应的管脚号
                                      This parameter can be any value of @ref GPIO_pins_define */
  GPIOSpeed_TypeDef GPIO_Speed;  /*!< Specifies the speed for the selected pins. //io口传输频率
                                      This parameter can be a value of @ref GPIOSpeed_TypeDef */
  GPIOMode_TypeDef GPIO_Mode;    /*!< Specifies the operating mode for the selected pins. 选择输入或输出且是否其他功能
                                      This parameter can be a value of @ref GPIOMode_TypeDef */
}GPIO_InitTypeDef;


#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
#define GPIO_Pin_All               ((uint16_t)0xFFFF)  /*!< All pins selected */

typedef enum
{ 
  GPIO_Speed_10MHz = 1,  //选择传输MHz
  GPIO_Speed_2MHz, 
  GPIO_Speed_50MHz
}GPIOSpeed_TypeDef;
typedef enum
{ GPIO_Mode_AIN = 0x0,   
  GPIO_Mode_IN_FLOATING = 0x04,
  GPIO_Mode_IPD = 0x28,
  GPIO_Mode_IPU = 0x48,
  GPIO_Mode_Out_OD = 0x14,
  GPIO_Mode_Out_PP = 0x10,
  GPIO_Mode_AF_OD = 0x1C,
  GPIO_Mode_AF_PP = 0x18
}GPIOMode_TypeDef;
 GPIO_Init(GPIOB, &GPIO_InitStructure);	 //设置GPIOB为初始化的IO引脚,且将GPIO_IniStructure对应刚才设置的结构体
    指针所包含的 PIN SPEED MODE)初始化 
GPIO_SetBits(GPIOB,GPIO_Pin_5);//置1  
GPIO_ResetBits(GPIOB,GPIO_Pin_5); //清0 
还有很多复用功能,继续添加  













  您阅读这篇文章共花了:  
捐赠支持:如果觉得这篇文章对您有帮助,请 "扫一扫"鼓励作者!
二维码加载中...
本文作者:RainFly      文章标题: STM32学习笔记1之通用GPIO
本文地址:http://www.rainfly.cn/?post=272
版权声明:若无注明,本文皆为“雨夜轩”原创,转载请保留文章出处。

已有5条吐槽

宁国房产网  Google Chrome 55.0.2883.87 Google Chrome 55.0.2883.87 Windows 7 Windows 7  2017-11-14 22:06 #4楼
辛苦了,谢谢分享!
代写paper  Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-07-12 23:13 地板
支持楼主
定制论文服务  Firefox 50.0 Firefox 50.0 Windows 10 Windows 10  2017-06-29 20:30 板凳
支持楼主
韭菜韭菜 Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-07-04 19:49
@定制论文服务:很好的学习文章!谢谢!
跨境电商培训  Firefox 54.0 Firefox 54.0 Windows 10 Windows 10  2017-06-22 18:09 沙发
说的很好!!!

QQ游客评论

返回顶部    首页    捐赠支持    手气不错    友情链接    关于我们    站长工具    站长介绍    手机版本    后台登陆   
版权所有:雨夜轩    站长:RainFly    特别鸣谢   文章归档   皖ICP备15003600号-1   百度统计
Copyright©2015 雨夜轩 Powered by emlog强力驱动 七牛CDN全球加速 360站长联盟安全认证 中国博客联盟荣誉成员 可信赖网站 站点地图   
页面加载耗时:0.048秒 数据库查询次数:21次
背景设置